#ifndef _INPUT_ASSEMBER_STAGE_H_
#define _INPUT_ASSEMBER_STAGE_H_
#include "PCH.h"

namespace DeviousRenderer
{
	class InputAssemberStage
	{
	public:
		InputAssemberStage();
		virtual ~InputAssemberStage();

		void	SetFeatureLevel(D3D_FEATURE_LEVEL level);
		void	SetIndexBuffer(int buffer, DXGI_FORMAT format = DXGI_FORMAT_R32_UINT);
		void	SetVertexBuffer(UINT slot, int buffer, UINT offset, UINT stride);
		void	SetInputLayeout(int layout);
		void	SetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY topology);

		void	ClearState();

	protected:
		D3D_FEATURE_LEVEL			m_eFeatureLevel;
		int							m_iIndexBuffer;
		DXGI_FORMAT					m_eIndexBufferFormat;
		int							m_iVertexBuffers[D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT];
		UINT						m_uiVertexStrides[D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT];
		UINT						m_uiVertexOffsets[D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT];
		int							m_iInputLayout;
		D3D11_PRIMITIVE_TOPOLOGY	m_ePrimitiveTopology;

	};
}
#endif//_INPUT_ASSEMBER_STAGE_H_